home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
qbbs
/
ques_220.zip
/
QUESDOOR.DOC
next >
Wrap
Text File
|
1991-04-15
|
111KB
|
3,211 lines
Ra 1.0 and up ▄▄▄ ▄ ▄ ▄▄▄▄▄ ▄▄▄▄ ▄ ▄ ▄▄▄ ▄▄▄▄ ▄▄▄
╔══════════════█▄▄ ▀▄▀ █ █▄▄ █▀▄ █ █ █ █▄▄ █ █═════════════╗
║ ░░░░░░░░░ █▄▄▄ █ █ █ █▄▄▄ █ ▀█ █▄▄▀ █▄▄▄ █▄▄▀ ║
║ ░░ ░░ ║
║ ░░ ░░ (tm) ║
║ ░░ ░░ ░░ ░░ ░░░░░░░ ░░░░░░░ ░░░░░░ ░░░░░░░ ░░░░░░░ ░░░░░░░ ║
║ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ║
║ ░░ ░░ ░░ ░░ ░░░░░ ░░░░░░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░░░░░░ ║
║ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ║
║ ░░░░░░░░░ ░░░░░░░ ░░░░░░░ ░░░░░░░ ░░░░░░ ░░░░░░░ ░░░░░░░ ░░ ░░ ║
║ ░░ ║
║ An Extended Questionnaire Command Language Door ║
║ For RemoteAccess V 2.20 ║
╚═══════════════════════════════════════════════════════════════════╝
Copyright (c) Ron Huiskes and Intersoft 1990-91
All rights reserved
The QUESDOOR support board is:
InterFace HeadQuarters Europe
p.o. Box 528
2280 AM Rijswijk ZH
The Netherlands
+31-70-3361380 / +31-70-3361381
Matrix: [2:281/506]
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 1
TABLE OF CONTENTS
-----------------
1. Disclaimer and legal matters.........................
Legal terms.......................................... 3
License information.................................. 3
Registering.......................................... 4
2. Introduction.........................................
What is Quesdoor ?................................... 5
Installing and behaviour............................. 5
Command language..................................... 6
Tips................................................. 6
3. Input commands.......................................
Ask.................................................. 8
AskEdit.............................................. 8
AskForced............................................ 8
AskCount............................................. 9
AskNumber............................................ 9
AskDate.............................................. 9
GetChar.............................................. 10
GetChoice............................................ 10
4. Output commands to screen............................
ChangeColor.......................................... 10
ClearScreen.......................................... 11
Display.............................................. 11
DisplayFile.......................................... 11
DisplayAnyFile....................................... 12
ListAnswer........................................... 12
ListSecurity......................................... 12
ListTimeLeft......................................... 12
ListFlags............................................ 13
Output............................................... 13
5. Output commands to file/disk.........................
Delete............................................... 14
PostInfo............................................. 14
Output............................................... 13
OutputAnswer......................................... 14
OutputLog............................................ 15
6. Setting commands.....................................
Random............................................... 15
SetDataPhone......................................... 15
SetFlag.............................................. 15
SetHomePhone......................................... 16
SetLevel............................................. 16
SetParam............................................. 16
SetSecurity.......................................... 17
SetTime.............................................. 17
SetVar............................................... 17
Toggleflag........................................... 18
7. Aritmethic commands..................................
Addvar............................................... 18
Mulvar............................................... 18
Subvar............................................... 18
Divvar............................................... 19
Pastevar............................................. 19
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 2
8. Procedure commands...................................
Labels............................................... 20
Gotolabel............................................ 20
Gosublabel........................................... 20
Start................................................ 20
9. Decision-Making commands.............................
EndIf................................................ 21
EndNotIf............................................. 21
If................................................... 21
IfNot................................................ 22
10. Global commands......................................
CheckPhone........................................... 22
Readflag............................................. 23
Readsecurity......................................... 23
Readansi............................................. 24
11. Database commands....................................
WriteData............................................ 25
LoadData............................................. 25
CheckData............................................ 26
11. Voting commands......................................
Votedoor concept..................................... 27
AskQuestion.......................................... 27
ShowAnswer........................................... 27
ShowQuestion......................................... 28
VoteQuestion......................................... 28
12. Timebank commands....................................
Timebank concept..................................... 30
BorrowTime........................................... 30
BuyTicket............................................ 30
DeposTime............................................ 31
RedrawTime........................................... 31
Robbank.............................................. 31
ShowAccount.......................................... 32
ShowClients.......................................... 32
TransTime............................................ 32
Ed_bank.Exe.......................................... 33
13. Misc. commands.......................................
Beep................................................. 34
Halt................................................. 34
Pause................................................ 34
Quit................................................. 34
Run / Exec .......................................... 34
14. Appendices...........................................
Appendix A: Control codes............................ 35
Appendix B: Let commands............................. 39
Appendix C: Index.................................... 42
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 3
Legal Terms
-----------
Ron Huiskes and InterSoft hereby excludes all warranties
relating to this software and documentation, whether express
or implied, including, without limitation, any implied
warranties of merchantability and/or fitness for a particular
purpose.
Ron Huiskes and InterSoft shall not be liable for any
damages, whether direct, indirect, special, incidental, or
consequential, resulting from the use of this software and
documentation, due to loss of data or any other reason.
In no event shall Ron Huiskes and InterSoft's liability for
any damages ever exceed the price paid to InterSoft for the
license to use this software, regardless of the form of the
claim.
The person using this software bears all risk as to its
quality and performance.
License information
-------------------
"Quesdoor" refers to the executable program and
documentation contained in Quesdoor's software distribution
archives released by InterSoft.
1. Quesdoor is the copyrighted material of InterSoft. It may
only be used in agreement with the conditions set out in
this license agreement.
2. You may use Quesdoor for a period of three weeks on a
trial basis in order to determine it's suitability for
your particular application. After this period you MUST
register each copy of Quesdoor that you run simultaneously.
Multi-line installations that share a common file base AND
have the same name need only register one copy.
3. Registration entitles you to use Quesdoor and any future
versions of Quesdoor for as long as you wish, subject to
any special licensing conditions attached to future
versions. For details on the registration procedure, refer
to the section in this document "Registering".
4. InterSoft is in no way obligated to provide future
versions of, or support for, Quesdoor. Whether future
versions will be developed depends upon the number of
registrations received for this version.
5. Site and Group registrations are available, and are dealt
with on a case by case basis.
6. You may not modify or otherwise reverse-engineer Quesdoor.
7. You are encouraged to distribute Quesdoor provided that no
fee is charged for its distribution, and that the
distribution archive is not modified in any way. Pay
Bulletin Board Systems may however charge their normal fee
provided that no additional change for Quesdoor is levied.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 4
8. Quesdoor may not be included as part of any software
library which is distributed on a commercial basis without
prior written permission from InterSoft.
9. Quesdoor may not be used in any unlawful or illegal
manner.
Registering
-----------
The registration fee for Quesdoor is Dfl 25.- (twenty five
Dutch guilders).
Holland: Any method of payment is accepted, either cash, giro,
postal money order, check or girotel.
Europe: Either cash (registered letter) or Eurocheque written
out in Dutch currency.
Others: Contact our US registration site:
Scott Livingston Stone Henge BBS
290F Brittany Farms Rd 203-826-1153
New Britain, CT 06053
U.S.A.
Print or reproduce the registration form supplied in the
distribution archive and send it with your registration
payment to:
InterSoft/Quesdoor
p.o. Box 528
2280 AM Rijswijk ZH
The Netherlands
Upon registering you will receive your uniquely generated
key. Each key is a small file which contains a serial number.
To install the key, simply rename it (if necessary) to
QUESDOOR.KEY and copy it to your RemoteAccess system
directory or the directory where the message base resist.
This serial number is unique, and under NO circumstances
should it be made available to anyone else. Doing so is a
direct violation of the agreement you entered into with us by
registering.
When Quesdoor detects a valid key it switches into
registered mode, and will show so at the end of an Quesdoor
session. (Instead of the big add at the end, it will display
'QUESDOOR v2.0+ by R. Huiskes', a very discreet way of
showing your users you registered your copy of Quesdoor.)
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 5
What is Quesdoor?
----------------
Quesdoor is a RA door with a flexible script language. The
script language allows you to write your own doors in very
less time. The script language is fully compatible with the
language Ra uses, so all your existing questionairs can be
run without a problem with Quesdoor.
Quesdoor has at this moment around 50 extra enhanced
commands to this script language, which will make your
questionairs much more attractive. The enhanced commands are
easy to learn and understand.
Even though the command language is easy to understand, if
you can't write a correct batchfile, this program will
probably no good for you.
Installing and Behaviour
------------------------
Quesdoor is a full RA compatible Door. It has built in
carrier detect routines, and smart fossil and timer
functions. There is no need for an external watchdog or
redirect program. Locked baudrates are no problem.
Quesdoor has build in record and file locking routines
and will need share.exe when the Multiline bit in Raconfig is
enabled.
Quesdoor also has a build in Ansi driver. Ansi.sys is not
required to operate locally. The local site looks almost the
same as Ra, with the same status column and function keys.
Alt function keys are also their, just press alt-c for chatmode,
alt-l to lock out a user forever, alt-h to hangup and alt-n for
sysop next.
Quesdoor reads questionnaires... A questionnaire is a plain
ascii file with on every line a valid command. The command
interpreter is case sensitive, so "ask" is the same as "ASK".
If Quesdoor encounters an invalid command, it beeps and gives
you the exact error and line number where the mistake was found.
Creating a questionnaire is not so easy, and you should
carefully plan what you are going to do, before you even start
your editor. Making a questionnaire is much like programming,
every mistake you make will be directly involve the performance
of Quesdoor.
Quesdoor will use a lot of Ra's specific files, and
therefore it is NOT possible to run Quesdoor on other bbs
systems. Quesdoor will find all these files through the
paths you set in config.ra. Config.ra itself can be in the
dir you invoke Quesdoor from, or in the dir where your Ra
environment variable points to. (that is usually the case).
The questionnaire(s) itself (Which have the extension .q-a)
can be in any directory as long as you specify the complete
path to that questionnaire.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 6
Quesdoor can be run as a type 7 or 15, depending on your
needs and free memory. Quesdoor uses around the 140 K of
memory.
Installing Quesdoor in Ra is easy. Just use a type 7 menu-
command with in the optional datafield:
<path to>QUESDOOR.EXE [<path to>.Q-A name].
By default quesdoor uses 'QUESDOOR.Q-A' as questionnaire name,
but if you want to use your own name or if you have more than
one questionnaire you like to run from quesdoor, you can use any
legal dos name.
Quesdoor.exe NewUser" will start the newuser questionnaire,
and "Quesdoor.exe Menu" starts the menu questionnaire, provided
that they exist.
Command Language
----------------
The command language Quesdoor uses is fully compatible with
the questionnaire language RemoteAccess uses. Most of these
commands have enhanced functions which will be explained in
the next chapters.
These enhanced commands will give you the ability to
program almost everything you like, including time gamble
games, a blackjack game, a voting door and a complete
timebank. (samples are included).
The command language will be enhanced with every new
version of Quesdoor, and if you have an idea for a command,
just tell us...
To make it easy for you when writing Questionnaires, Quesdoor
can be started from Dos, without loggin in to your bbs!
Just place a '/L' after the questionnaire name on the command
line, and Quesdoor will create two temporary Raccess files
(dorinfo1.def and exitinfo.bbs) which enables you to start
the questionnaire.
TIPS
----
Specifying a '/L' on the command line will let you test
out Questionnaires from Dos. Never use this in a menu command.
Specifying a '/E' on the command line will disable ANY error
message. Useful when you install your 100% perfect questionnaire
in Ra, and you don't want to see the internal messages from
Quesdoor at start.
The error messages can also be set on or off with a special
command to use in the questionnaire itself. (see LET commands).
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 7
In order to program a good questionnaire, here are some points
to take care of:
■ First make sure you know all the commands which you can
use globally. There are many commands that look-a-like,
and do almost the same thing. Make sure you know the
differents.
■ Make sure that on every line of the questionnaire there
is only one valid command, they may start on every column
you wish.
■ Leave comments in your questionnaires (starting with ';' on
every line) so that even after a year you still now what
and why you did something.
■ Try out a questionnaire several times from Dos before you
bring it online.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 8
In the next couple of chapters we will express every command
that is legal to use in Quesdoor's interpreter. We'll start
with all the input routines that are possible....
The command: ASK
----------------
Syntax: Ask <Len> <Var num>
Example : Display "What is your name ?"
Ask 15 3
This command waits for the user to input a string that is up
to 15 characters long (in this example), and stores the
string in the variable number 3 (also in this example). Valid
values for <Len> are 0 to 255. <Var num> may be any number
between 1 and 40. If <Len> is 0 only [ENTER] is a valid
response, and the contents of <Var num> will be empty.
The command: ASKEDIT
--------------------
Syntax: Askedit <Len> <var num>
Example: Display "What is your name ?"
Askedit 15 3
This command is almost the same as the ASK command. When this
command is used, first the contents of <var num> will be shown,
and then the user gets the change to edit this contents (with
the backspace key to delete chars). If the contents of <var num>
was empty before the command was executed, the ASKEDIT command
reacts the same as the ASK command.
When you use this example in some kind of registration door it is
most likely that Quesdoor already knows the name of the user, and
it looks better if Quesdoor could give the user the change to edit
his name (or just press enter if correct) instead of filling it in
for a second time (when he logged on it was the first thing he had
to fill in.) To bring the name of the user in variable number 3 you
can use the SETVAR command. In this example it was
better to begin the questionnaire with: SETVAR 3 = A. This will
fill variable number 3 with the users full name. (see the control
codes section and setvar section further in this doc)
The command: ASKFORCED
----------------------
Syntax: Askforced <min length> <max length> <var num>
Example : Display "What is your name ?"
Askforced 2 35 1
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 9
This command waits for the user to input a string that is up
to 35 characters (in this example), and at least 2 characters.
In this example the user cannot press enter/return before he
inputs at least 1 character. The input string will be stored
in variable number 1.
The command: ASKCOUNT
---------------------
Syntax: Askcount <min length> <max length> <var num>
Example: Display "Enter your telephone number:"
Askcount 10 15 2
This command will let the user only input integers 0 'till 9
and '-', '(' and ')'. You can specify exactly how long the
input field may be, including minimum and maximum length. The
contents of the input field will be stored in variable number
2 (in this example).
The command: ASKNUMBER
----------------------
Syntax: Asknumber <minimal value> <maximum value> <var num>
Example: Display "Enter your age:"
Asknumber 5 99 1
The asknumber command is completely different from the askcount
command. This command needs an number from the user as input,
and you can supply the range. In the above example the user is
asked about his age. Quesdoor will refuse any input below 5 or
above 99. It simply beeps and refuses to continue. You must make
sure that you let the user know what the range is. (In the above
example it's obvious, if a 4 year old kid, or someone with age
101 starts calling your board you can better call it ghost bbs)
The command: ASKDATE
--------------------
Syntax: AskDate <var num>
Example: Askdate 2
With this command, the user is expected to enter a date. Quesdoor
will beep and refuse to continue (the enter key) when the date
is invalid.
The <var num> will be filled with the date the user entered.
As default Quesdoor uses the DD/MM/YY (european) date form, but
with the 'LET DATEFORM' command you can set other forms... See
appendix B for more info on the Let command.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 10
The command: GETCHAR
--------------------
Syntax: Getchar [Var num]
Example : Display "Enter your choice: "
Getchar 2
This command waits for the input of ONE character and
optionally stores the character in var num 2 (in this
example). This command is different from the Getchoice
command below that with this any input character is valid.
Also this command differs from the Ask command because with
this, no enter is expected from the input site.
The command: GETCHOICE
----------------------
Syntax: GetChoice <Valid choices> [Var num]
Example : Display "Are you sure ? (Y/N) "
GetChoice YN 2
Waits for the user to enter one of the characters in <Valid
choices>, and optionally stores the response in the variable
[Var num]. If [Var num] is not specified, the response will
not be stored.
The command: CHANGECOLOR
------------------------
Syntax: ChangeColor <Foreground> [Background]
Example : ChangeColor 7 1
Changes the colour of the text if the user has ANSI graphics
enabled. [Background] is optional, and defaults to 0. Valid
colours are:
<Foreground> [Background]
------------ ------------
0 Black 0 Black
1 Blue 1 Blue
2 Green 2 Green
3 Cyan 3 Cyan
4 Red 4 Red
5 Magenta 5 Magenta
6 Brown 6 Brown
7 Light Grey 7 Light Grey
8 Dark Grey
9 Light Blue
10 Light Green
11 Light Cyan
12 Light Red
13 Light Magenta
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 11
14 Yellow
15 White
The command: CLEARSCREEN
-------------------------
Syntax: ClearScreen
Example : ClearScreen
This command clears the screen on the users and local side
provided that the user has screen clearing enabled.
The command: DISPLAY
--------------------
Syntax: Display "<Text> [|]"
Display <var num>[L/R<fixed length>]
Example 1: Display "Please answer ALL questions|"
Displays the specified text between the quotes on the screen.
The optional vertical bar is translated to a line-feed and
carriage return. If this bar is omitted, any following text
starts at the next character on the same line.
Example 2: Display 7
Displays the contents of variable number 7 (in this example)
on the screen.
Example 3: Display 7L10
Presume the contents of var 7 is "Ron", with the above example
"Ron " is shown.
Example 4: Display 7R10
Presume the contents of var 7 is "Ron", with the above example
" Ron" is shown.
The command: DISPLAYFILE
------------------------
Syntax: DisplayFile <1-8 character file name>
DisplayFile #<var num>
Example : DisplayFile BBSRULES
Causes a text file to be displayed in the same way as a menu
type 5 would be displayed in Ra. The text file must be in the
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 12
text file directory specified in Config.ra, and it must have
the extension .ASC/.ANS. In the text file all sort of control
codes may be used. See appendix B for a list of all useable
control codes.
When using the #<var num> as filename, the <var num> must contain
a legal dos name.
The command: DISPLAYANYFILE
---------------------------
Syntax: DisplayAnyFile <complete path + filename> or
DisplayAnyFile #<var num>
Example: DisplayAnyFile c:\txtfiles\welcome.asc
With this command you can display any file you which, anywhere
on your disk. The difference with the displayfile command is,
that with the displayfile command all the files to be displayed
must be in the textfile dir as supplied in raconfig. With this
command any file is possible.
If you use the displayanyfile #<var num> syntax, Quesdoor expects
to find a legal dos filename as contents of that <var num>.
The command: LISTANSWER
-----------------------
Syntax: ListAnswer <Var num>
Example : ListAnswer 5
Displays (to the screen) the contents of the variable
<Var num> followed by a CR/LF.
The command: LISTSECURITY
-------------------------
Syntax: ListSecurity
Example : Display "Your security level is: "
Listsecurity
Displays (to the screen) the users security level.
The command: LISTTIMELEFT
-------------------------
Syntax: ListTimeLeft
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 13
Example : Display "Your time remaining is: "
ListTimeLeft
Display " minutes.|"
Displays (to the screen) the users time remaining for this call.
The command: LISTFLAGS
----------------------
Syntax: Listflags <flagset> or
Listflags All
Example: Display "Your A3 is now set to: "
Listflags A3
This command will display 'ON' or 'OFF' according to the users
flag setting. When the keyword ALL is used, all the users flags
will be displayed (on one line).
The command: OUTPUT
-------------------
Syntax: Output "<Descriptor> [#<var num>[L/R<fixed length>]]"
[filename.ext]
Output is a very powerful command! It will send the text
between the " " to the screen, or if you specify a filename
at the end, it will send the text to a filename.
Example 1: OUTPUT "hello"
This will display 'hello' to the screen.
Example 2: OUTPUT "hello" QUESDOOR.ASW
This will write the line 'hello' to the filename quesdoor.asw.
Within the " " you can use variable numbers, as long as you
start that variable number with a #, and end it with a space.
Example 3: OUTPUT "hello #1 how are you doing ?"
This will echo 'hello Ron how are you doing ?' to the screen,
provided that the contents of var num 1 is 'Ron'.
If you want, you can preformat the length of the variable to
a specific length when you specify the length right after the
variable number. Also you then have to specify how your
variable contents has to be formatted: To the Left or to Right.
Example 4: OUTPUT "hello #1L10 how are you doing ?"
This will echo 'hello Ron how are you doing ?' to the
screen, provided that the contents of var num 1 is 'Ron'.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 14
Example 5: OUTPUT "hello #1R10 how are you doing ?"
This will echo 'hello Ron how are you doing ?' to the
screen, also provided that the contents of var num 1 is 'Ron'.
The command: DELETE
-------------------
Syntax: Delete <filename>
Example : Delete new.asw
Deletes a file on disk in the current dir. If the file does
not exist there will be an error message displayed (only) on
the local console. This command is useful when you want to
delete the filename.ASW file which is automaticly created on
quesdoor's start.
The command: POSTINFO
---------------------
Syntax: PostInfo
Example : PostInfo
Outputs the user's name and date and time to the answer file.
This command is useful in your newuser questionnaire, before
the actual answers from the user are printed.
Some programs use the output of this command (starting with
**) to find the answers of one particular user.
The command: OUTPUTANSWER
-------------------------
Syntax: OutputAnswer "<Descriptor>" [Var num]
Example : OutputAnswer "Hobbies : " 6
Outputs <Descriptor> optionally followed by the contents
of the variable <Var num> to the questionnaire answer file.
The answer file is given the same name as the questionnaire
file but has an extension of .ASW.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 15
The command: OUTPUTLOG
----------------------
Syntax: OutPutLog "<String>"
Example : Outputlog "Just entered quesdoor!"
The Outputlog command prints <String> in the Ra logfile in
the current dir (in Frontdoor style). If quesdoor cannot
find the logfile, a new logfile will be created.
The command: RANDOM
-------------------
Syntax: Random <Max value> <Var Num>
Example : Random 10 1
In the above example, the variable number 1 is filled with
a random number between 1 and 10. Nice for a small guess
game...
The command: SETDATAPHONE
-------------------------
Syntax: SetDataphone <Var num>
Example : Setdataphone 2
Stores the contents of <var num> into the dataphone data field
of users.bbs. If the contents of <var num> is longer than 12
characters, it will be truncated to 12 characters. (But better
is to make sure users can't fill in a longer phonenumber than 12
characters).
The command: SETFLAG
--------------------
Syntax: SetFlag <Flag set><Flag number> <ON|OFF>
Example : SetFlag C3 OFF
Turns a specified user flag on or off. <Flag set> is "A",
"B", "C" or "D", and <Flag number> is a number between one and
eight.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 16
The command: SETHOMEPHONE
-------------------------
Syntax: SetHomephone <Var num>
Example : Sethomephone 2
Stores the contents of <var num> into the homephone data field
of users.bbs. If the contents of <var num> is longer than 12
characters, it will be truncated to 12 characters. (But better
is to make sure users can't fill in a longer phonenumber than 12
characters).
The command: SETLEVEL
---------------------
Syntax: SetLevel <var num>
Example : Setlevel 1
Simply sets the user's security level to the contents of
variable number one (in this example). If the contents of
<var num> cannot be converted to a user's security level
(for example if the contents of <var num> contain letters)
then the security level will remain the same.
The command: SETPARAM
---------------------
Syntax: SetParam <param num> <Var num>
Example : SetParam 1 10
The above example stores the first parameter given at the
start of Quesdoor in variable number 10. So, if you started
Quesdoor like 'Quesdoor.exe test' to start the test
questionnaire, and you use above example, after the command
is executed, variable number 10 will have 'test' as contents.
Of course you could supply extra parameters, like the *1
which Ra replaces with the current message template number,
or just any number or word. If you start Quesdoor like
'Quesdoor.exe test *1' with a type 7 in RA, after executing
the command 'SetParam 2 10' in the test questionnaire, variable
number 10 will contain the current message template area number.
Note: *1 is a new type 7 command-line parameter, it will be
replaced by RA to the current message template area
number.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 17
The command: SETSECURITY
------------------------
Syntax: SetSecurity [+/-]<Security level>
Example 1: SetSecurity 10
When this command is used, it will set the user's security
level to the number specified. (In this example, the level
will be set to 10). The level may be any number from 0 to
32,000.
Example 2: SetSecurity +1
If a user had level 100, his level will be 101 after this
command is executed. If a user had level 10, his level
will be 11.
The same counts for "Setsecurity -10", if a user had level
100, he now has level 90. If he had level 10, he will now
have level 1. (this command is programmed not to go below
level 1, if you want level 0 use "Setsecurity 0")
The command: SETTIME
--------------------
Syntax: SetTime <+/-><minutes>
Example : Settime +10
Above example increases the time left with 10 minutes. If
a '-' is supplied before <minutes> the time is decreased.
The +/- are not optional ! You have to supply either one
of them !
The command: SETVAR
-------------------
Syntax: SetVar <Var num> = "<String>"
SetVar <Var num> = <Ext. control code>
Example 1: Setvar 2 = "hello"
When this command is used, the <String> will be stored into
variable number 2.
Example 2: Setvar 2 = ^FA
When this is used, Quesdoor will store the users full name
into the variable number 2. See appendix B for a complete
list of all the extended control codes which you can use.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 18
The command: TOGGLEFLAG
-----------------------
Syntax: ToggleFlag <Flag set><Flag number>
Example : Setflag C3
This command will toggle the users flag setting. If in the
example the user's C3 flag was ON, it will be toggled OFF,
and if it was OFF, it will be ON after this command is
executed. It just toggles the mentioned flag to the opposite.
The command: ADDVAR
-------------------
Syntax: Addvar <var1> <var2> [var3]
Example : Addvar 1 2 3
Only if the contents of the variable numbers are numbers
(integers) this declaration is valid. The above example
adds the contains of variable number 1 with variable number
2, and stores the result in variable number 3. So, if
<var1> = 1 and <var2> = 3, after the command "Addvar 1 2 3"
<var3> will have the value 4. If you don't supply the third
variable, the result will be stored in variable number one.
The command: MULVAR
-------------------
Syntax: Mulvar <var1> <var2> [var3]
Example : Mulvar 1 2 3
Only if both variable numbers contain numbers this declaration
is valid. The above example multiplies the contains of
variable number 1 with variable number 2, and stores the
result in variable number 3. If you don't supply the third
variable, the result will be stored in variable number one.
The command: SUBVAR
-------------------
Syntax: Subvar <var1> <var2> [var3]
Example : Subvar 1 2 3
Only if both variable numbers contain numbers this declaration
is valid. The above example subtracts the contains of
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 19
variable number 1 with variable number 2, and stores the result
in variable number 3. If you don't supply the third variable,
the result will be stored in variable number one.
The command: DIVVAR
-------------------
Syntax: Divvar <var1> <var2> [var3]
Example : Divvar 1 2 3
Only if both variable numbers contain numbers this declaration
is valid. The above example divides varnum2 through varnum1 and
stores the result in variable number 3. IF you don't supply the
third variable, the result will be stored in variable number one.
The command: PASTVAR
--------------------
Syntax: Pastvar <var1> <var2> [var3]
Example: Pastvar 1 2 3
Pastvar paste the contents of two variables together.
Assume var1 has 'c:\files\' as contents, and var2 has 'top.ans'
as contents. After using the above example var3 will have
'c:\files\top.ans' as new contents.
If you don't supply the third variable, the result will be stored
in variable number one.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 20
Labels
------
One of the best things in Quesdoor is the ability to use
labels, almost exactly as you can do in batch files. Together
with the gotolabel and gosublabel command, it gives you a very
flexible way of programming your questionairs !
An label declaration must begin with a ':' and the name must
have at least a length of 4 characters. (only the first three
characters are sensitive, you may use longer label names, but
Quesdoor looks only to the first three.) An label declaration
ends with just a ':'.
Example: :Top
display "this is the top label"
:
The command: GOTOLABEL
----------------------
Syntax: GotoLabel <Label name>
Example : GotoLabel TOP
When this command is executed, Quesdoor will jump to the :TOP
label in the .q-a file as specified with the label command,
and from that point continues with the questionnaire.
Make sure you test everything before bringing the questionnaire
online, because with this command it is very easy to create
endless loops, with only angry users as result.
The command: GOSUBLABEL
-----------------------
Syntax: GosubLabel <Label name>
Example : Gosublabel TOP
When this command is executed, Quesdoor jumps to the :TOP
label in the .q-a file, executes the commands within the label
until the endlabel (':') is encountered, and then continue
normally with the questionnaire.
You can nest a gosublabel (declare a gosublabel inside a
gosublabel) with a maximum of 10 !
The command: START
------------------
Syntax: Start <Questionnaire name> [labelname]
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 21
Example : Start 2EQUES
When this command is executed, Quesdoor will terminate the
current questionnaire and starts the questionnaire 2eques.q-a
(in this example). If you supply the optional [labelname],
QUESDOOR starts the new questionnaire at that label.
The command: ENDIF
------------------
Syntax: EndIf
Example : If 1 = "Q"
GosubLabel dosomething
EndIf
Signifies the end of an IF statement. Whenever you use an
IF command, you must specify an ENDIF statement to let Quesdoor
know it can end the IF command.
The command: ENDNOTIF
---------------------
Syntax: EndNotIf
Example : Ifnot 1 = "Q"
Gosublabel dosomething
EndNotIf
Signifies the end of an IFNOT statement. Whenever you use an
IFNOT command, you must specify an ENDNOTIF statement to let
Quesdoor know it can end the IFNOT command.
The command: IF
---------------
Syntax: If <Var num> = "<String>"
If <Var num1> = <Var num2>
If <Var num1> > <Var num2>
Example 1: If 5 = "Perth"
The IF command compares the contents of the specified
variable number with <String>. If the two do not match,
then all following lines are skipped until an ENDIF statement
is encountered. You must end an IF statement with an ENDIF
before executing a new IF statement (with other words, IF's
cannot be nested).
Example 2: If 1 = 2
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 22
This is an other way of using the IF command. With this way
the IF command compares the contents of variable number 1 with
variable number 2. If the two do not match, then all following
lines are skipped until an ENDIF statement is encountered.
WARNING: Following example only works if the contents of the
used variabelen are numbers (integers)
Example 3: If 1 > 2
This is also possible. If the value of variable number 1 is
bigger than the value of variable number 2 than all following
lines are executed until an ENDIF statement is encountered. If
the value of variable number 1 is smaller (in this example)
than the value of variable number 2 than all lines are
skipped.
The operator (the third word) can be: '=', '<', '>', '>=',
'<=' and '<>'.
The command: IFNOT
------------------
Syntax: Ifnot <var num> = "<string>"
Ifnot <var num1> = <var num2>
Ifnot <var num1> > <var num2>
Example 1: Ifnot 5 = "Perth"
(read this as: If variable 5 is not equal to "Perth" then...)
The IFNOT command is the opposite of the IF command. The
IFNOT command compares the contents of the specified
variable number with <String>. If the two do match, then
all following lines are skipped until an ENDNOTIF statement
is encountered. You must end an IFNOT statement with ENDNOTIF
before executing a new IFNOT statement. (With other words:
IFNOT's cannot be nested)
Example 2: Ifnot 1 = 2
The IFNOT command in this example compares the contents of
variable number 1 with variable number 2. If the two do match,
then all following lines are skipped until an ENDNOTIF
statement is encountered. As operator (the third word) are
also possible: '<', '>', '<=', '>=' and '<>', but it's better
to use the If and Endif statements, those are easier to use.
The command: CHECKPHONE
-----------------------
Syntax: CheckPhone <Var num> <Result Var>
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 23
This command will check the phonenumber of a new user with
the phone numbers of the users in the database. <Var num>
must contain the phonenumber of the new user. If somebody
in the users base has the phone number which is in <var num>,
the result var will have a value of '1', if the phonenumber
is not found <result var> has the value of '0'.
Example: :number
Display "Please enter your phonenumber :"
Ask 12 1
Display "Checking phone numbers....|"
CheckPhone 1 2
If 2 = "1"
Display "This phonenumber is invalid....|"
gotolabel number
endif
if 2 = "0"
Display "Correct...|"
endif
This command will check both the homephone and dataphone field
in your users bbs. If the supplied phonenumber in <var num>
is present in either one of them <result var> will contain a '1'.
So don't use this command if you allow more than one family
member as member, or if you allow two people from the same
company as a member (because they probably use the same
dataphonenumber, and <result var> will return a '1'.
The command: READFLAG
---------------------
Syntax: READFLAG <flagset> <var num>
Example: Readflag a8 1
This command can be used to determine if a certain flag of the
user is set to on or off. After the command is executed,
<var num> will have an contents of 'ON' or 'OFF' according to
the <flagset> you supply. (In this example the A8 flag).
The command: READSECURITY
-------------------------
Syntax: Readsecurity <var num>
Example: Readsecurity 1
This command can be used to determine what security level the
user has on the bbs. After the command is executed <var num>
(in this example variable number 1) will have the security
level as contents.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 24
The command: READANSI
---------------------
Syntax: Readansi <var num>
Example: Readansi 1
This command can be used to determine if the current user on
the bbs has the ansi flag enabled. After the command is executed
<var num> will have an contents of 'ON' or 'OFF' according to
the ansi bit in users.bbs. (in this example var number 1)
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 25
The DATABASE concept:
---------------------
Quesdoor has the ability to store the contents of variable
numbers in special databases. The contents of the variables
can be stored in databases so that it is possible to reload
them back in in another questionnaire!
With this it is for example possible to make an advanced
newuser questionnaire and store the users answers in databases.
When some data of the user changes he can restart the ques-
tionaire, the questionnaire reloads his answers, and the user
can change the data instead of answering all the questions
again.
In every database you can only write one contents of a
variable. If you want to store more variable numbers, you
must create more databases. The <database name> in the commands
may be any valid dos name and path, but without extension!
Quesdoor will use '.QDB' as extension for any database.
If the database(s) become huge, the speed to load the data
will become slower. To speed things up, you can index the
database(s) with the INDEXER.EXE program in the DATABASE.ZIP
package which came with Quesdoor. Just run this program in
your nightly event and see the speed increasing.
The following commands will make your life easier when wor-
king with the database functions:
The command: WRITEDATA
----------------------
Syntax: Writedata <database name> <var num>
Example: Writedata test 1
This command will create a database with 'test.qdb' (in this
example) in your messagebase directory, and writes the contents
of var number 1 to that database. If a user had already data
in the database, the contents of <var num> will overwrite the
previous data.
The maximum length the contents of the variable may have is 80
characters, if the contents is longer, it will be truncated.
The command: LOADDATA
---------------------
Syntax: Loaddata <database name> <var num>
Example: Loaddata test 1
This command will try to load data from the database 'test.qdb'
(only in this example) into variable number 1. If a user has
no data from him in the database the contents of var number 1
will be empty.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 26
The command: CHECKDATA
----------------------
Syntax: Checkdata <database name> <var num>
Example: Checkdata test 1
With this command you can check if the user already has data in
the database.
If the user has data in the database, the contents of <var num>
will be a '1' after the check, otherwise it will have a '0' as
contents.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 27
The VOTEDOOR concept:
---------------------
Whenever you use one of the votedoor commands, quesdoor will
make a *.vot file in your messagebase dir. This file contains
all the data votedoor uses, including the percentage of voting
every question gets, and who already voted... This file will
not exceed 40 K.
If you (as a sysop) find offending questions in the database
you can use DELVOTE.EXE to delete a particular question in the
database. DELVOTE.EXE can be found in the votedoor.zip package
included in the release archive from Quesdoor.
The syntax is DELVOTE <vote database name>, and the program will
show every question, and asks you if it has to delete it.
There is a hard-coded maximum of 19 questions in one votedoor
database. When there are 19 questions in the database, and a
user tries to add a new question, the oldest in the database
will be deleted. When you want more than 19 questions, you
can always use a extra voting database under an other name.
In the votedoor.zip package you will find a ready-to-go
voting door. To install it, simply make a menutype 7 in one
of your menus with as optional data "C:\ra\utils\quesdoor.exe
votedoor". The lay-out and the colours of that voting door are
coded in the questionnaire itself. If you don't like it, feel
free to modify it to your own needs...
The command: ASKQUESTION
------------------------
Syntax: Askquestion <database name>
Example: Askquestion votedoor
In the above example a votedoor.vot database (containing a
maximum of 19 questions = around 40K) will be created in your
message dir. The user will be asked to enter a question and
answers for the voting door. A minimum of 2 answers is
required (maximum of 5). When a empty answer is given the
question will be stored into the database.
The command: SHOWANSWER
-----------------------
Syntax: Showanswer <database name> <question number>/<#var num>
Example 1: Showanswer votedoor 2
When this is used, quesdoor will show the 5 answers with the
percentage of voting from question number 2 in the votedoor
database, and continues with the next command in the
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 28
questionnaire. This command is not used in the sample
votedoor.q-a.
Example 2: Showanswer votedoor #2
And with this the contents of variable number 2 will be
translated into the answernumber to display.
The command: SHOWQUESTION
-------------------------
Syntax: ShowQuestion <database name> [question number]/[#var num]
Example 1: Showquestion votedoor
In the above example all the questions in the votedoor database
will be displayed to the user (the newest first), and continues
with the next command in the questionnaire (should be a "press
enter" prompt).
Example 2: Showquestion votedoor 2
With this, only the second question in the database will be
displayed.
Example 3: Setvar 2 = "3"
Showquestion votedoor #2
And with this, the contents of variable number 2 will be used to
find out which question it has to display. In this example the
contents of the variable is 3, so question number 3 is displayed
only.
Before you invoke this command, you can set the display colour
for ansi users with the CHANGECOLOR command.
The command: VOTEQUESTION
-------------------------
Syntax: Votequestion <database name> [question number]/[#var num]
Example 1: Votequestion votedoor
In the above example every question in the votedoor database
will be shown to the user with the answers, the percentage of
voting, and the user who posted the question. After every
question the user is prompted for a vote. Enter will bring
him to the next question, and Q will continue with the next
command in the questionnaire.
Example 2: Votequestion votedoor 2
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 29
In this example only question number 2 will be shown to the
user. The question with the answers will be shown, but not the
percentage of voting. The user has to vote on the question,
enter or "q" will not work. Before you invoke this command,
you can set the display colour for ansi users with the
CHANGECOLOR command.
Example 3: Votequestion votedoor #2
In this example the contents of variable number 2 will be
translated into the question it has to display and let the
user vote on.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 30
The TIMEBANK concept:
---------------------
The timebank commands will turn Quesdoor in a complete
banking system. Whenever you use one of these timebank
commands, quesdoor will make a quesbank.dat file in your
messagebase directory. This file contains all the data
the timebank uses.
In the timebank.zip package you will find a ready-to-go
timebank door. To install it, simply make a menutype 7 in
one of your menus with as optional data
"C:\ra\utils\quesdoor.exe timebank". The lay-out and the
colours of that timebank door are coded in the questionnaire
itself. If you don't like it, feel free to modify it to your
own needs...
The command: BORROWTIME
-----------------------
Syntax: Borrowtime <max time a user can borrow> [interest]
Example: Borrowtime 30 10
Whenever this command is used the user will be prompted with
how much time he wants to lend from the bank. (In this example
a user can borrow a maximum of 30 minutes).
In this example the optional [interest] is specified at 10%.
If a user loans 30 minutes, he has to pay back an additional
10 percent extra. (so 33 minutes)
A user can only loan once, after that, every deposit he makes
will be directly transferred in paying off his dept. After
paying of his dept completely, the user can borrow again, or
just deposit in his account to save for later use.
The command: BUYTICKET
----------------------
Syntax: Buyticket <price ticket> <max> <total> <price>
<price ticket> = The price one single ticket costs.
<max> = The maximum amount of tickets one
person can buy.
<total> = The total amount of tickets which
have to be sold before a lucky
winner is picked.
<price> = Is the price in minutes the holder
of the winning ticket gets in his
account.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 31
Example: Buyticket 5 2 15 60
With this command the user will be prompted if he wants to
buy a lottery ticket. In the above example the tickets cost
5 minutes each, and a user can buy a maximum of 2 tickets.
When there are 15 tickets sold (in this example) a lucky
winner will be picked automaticly. The winner will receive
60 minutes in his account, and all sold tickets are invalid.
Needless to say that if a user has not enough time in his
account that quesdoor will refuse the buy of the ticket.
The command: DEPOSTIME
----------------------
Syntax: Depostime [max in account]
Example: Depostime 120
When this command is used, the user is prompted on how much
time he wants to deposit in his account. That amount will be
subtracted from his time left for this session and will be
stored in his account.
When the optional [max in account] is specified, the users
can't have more time stored in his account than that amount,
and quesdoor will refuse to deposit more.
The command: REDRAWTIME
-----------------------
Syntax: Redrawtime
Example: Redrawtime
This command will prompt the user on how much time he wants to
redraw from his account. That amount is subtracted from his
account, and the user will have that more time left for this
session.
Quesdoor will monitor your events, so a user is not allowed
to redraw time over your next system event.
The command: ROBBANK
--------------------
Syntax: Robbank <percentage>
Example: Robbank 50
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 32
When this command is used, the user has the option of robbing
the bank! There is a (hardcoded) 10% change that the user
actually succeeds with this robbery, and than the user gets
(in this example) 50% of the amount stored in all accounts.
When the robbery succeeds, the robber gets the <percentage>
of the amount stored in all accounts. Everyone who has an
account will be notified who the robber was, and how much
they lost.
When the robbery fails, the robber looses his account at the
bank, as well as all his time left for this day at the bbs!
The command: SHOWACCOUNT
------------------------
Syntax: Showaccount
Example: Showaccount
When this command is used, the data of the timebank account
for the user (who is in quesdoor) will be shown, including
time in account, account number, account name, borrowed time
and amount of lottery tickets.
When someone robbed the bank, the user is notified, and the
robber's name is shown, including the lost time. When someone
transferred time into this users account, the user will also be
notified. After notification this particular data will be
cleared.
The best thing you could do is to use this command just after
someone enters the timebank, so he sees the changes made in his
account (if any).
The command: SHOWCLIENTS
------------------------
Syntax: Showclients
Example: Showclients
Whenever this command is used, quesdoor will report the total
amount of time in the bank, the total amount of lottery tickets
already sold, and gives a report of all the accounts in the
bank, including name and time.
The command: TRANSTIME
----------------------
Syntax: TransTime
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 33
Example: Transtime
This command is useful when you want to give your users the
opportunity to transfer some of their time to a friend's
account. The user is prompted for an accountname, and if that
accountname exists, the user will be prompted on how many
minutes he wants to transfer from his account to the other.
The user who gets the transferred time will be notified the
next time when he uses the SHOWACCOUNT command.
ED_BANK.EXE
-----------
Ed_bank.exe is a small utility to edit the quesbank.dat file
which Quesdoor uses to store the data for the timebank. Start
this util in the directory where your quesbank.dat file resists.
Ed_bank will let you edit and delete users records in the
quesbank.dat file, and works very simple. No help needed.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 34
The command: BEEP
-----------------
Syntax: Beep
Example : Beep
Produces a beep on local and the caller's console, and
continues with the next command in the questionnaire.
The command: HALT
-----------------
Syntax: Halt <errorlevel>
Example : Halt 10
Terminates the questionnaire with errorlevel <errorlevel> and
returns to bbs or batchfile.
The command: PAUSE
------------------
Syntax: Pause <seconds>
Example : Pause 10
Pauses 10 seconds (in this example), and than continue
normally with the next command in the questionnaire.
The command: QUIT
-----------------
Syntax: Quit
Example : Quit
Terminates the questionnaire and returns to the BBS.
The command: RUN
----------------
Syntax: Run <path + filename.ext> [control codes] [string]
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 35
Example : Run c:\ra\utils\rur_door.exe *B c:\test.ctl *F
This command will run an external program in a shell while the
user is online. The path + full name of the program must be
specified. A batchfile would be no problem.
Many programs require extra information to be passed on the
command line, so the following control codes may be used. In
each case, the code is replaced by it's value:
*B : User's baud rate, or 0 if local
*F : User's first name
*G : Ansi graphics, 0=off,1=on
*H : Normally the fossil is de-initialised before
running an external program to avoid any possible
conflicts between the Fossil and the program.
Specifying this parameter leaves the fossil "hot"
or active (required with quicked.exe).
*L : User's last name
*T : Time remaining for current call.
*M : Swap Quesdoor to Ems or disk to free up memory.
Besides this command line information that can be
passed, Quesdoor will leave Dorinfo1.def and Exitinfo.bbs
intact, so the calling program still can use them.
Note that the external program must do its own time limit and
carrier detect watchdogging, in the event that the user does
not exit from the program correctly. Note also that it is
impossible to start a second quesdoor in the same dir.
In order to keep compatible with the questionnaire command
language the RUN keyword can be replaced by the EXEC keyword.
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 36
CONTROL CODES
-------------
You can use extended codes in your ascii/ansi files
exactly as you are used to in RemoteAccess. When, during a
DISPLAYFILE command, the interpreter encounters such a code,
a special user or system parameter is inserted. The following
codes are validate in your files:
Character
ASCII# Combination Purpose
------ ----------- -------
01 ^A Wait until the [return] key is pressed
02 ^B Disable aborting with the 'S' key
03 ^C Enable aborting with the 'S' key
04 ^D Enable the 'Continue' prompt
05 ^E Disable the 'continue' prompt
06 ^F * Insert a user parameter
07 ^G Produce a beep on the caller's console
08 ^H Backspace
09 ^I Tab (forward cursor 8 characters)
10 ^J Linefeed
11 ^K * Insert a system parameter
12 ^L Clear Screen
13 ^M Carriage return
16 ^P Pause for one second
24 ^X % Execute a program in a DOS shell
* User Parameter Codes
----------------------
Character
ASCII# Combination Information inserted
------ ----------- --------------------
65 ^FA Users full name
66 ^FB Location
67 ^FC Password
68 ^FD Business/Data phone number
69 ^FE Voice/Home phone number
70 ^FF Date of last call
71 ^FG Time of last call
72 ^FH A Flags setting
73 ^FI B Flags setting
74 ^FJ C Flags setting
75 ^FK D Flags setting
76 ^FL NetMail credit remaining (cents)
77 ^FM Total messages posted
78 ^FN Last message read
79 ^FO Security level
80 ^FP Total calls to the BBS
81 ^FQ Number of uploads
82 ^FR Kilobytes of uploads
83 ^FS Number of downloads
84 ^FT Kilobytes of downloads
85 ^FU Minutes used today
86 ^FV Current screen length
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 37
87 ^FW First name only
88 ^FX ANSI setting (ON/OFF)
89 ^FY "Continue?" prompt setting (ON/OFF)
90 ^FZ Screen clearing (ON/OFF)
48 ^F0 Full screen editor (ON/OFF)
49 ^F1 Quiet/do not disturb mode (ON/OFF)
50 ^F2 Hot-Keys (ON/OFF)
* System Parameter Codes
------------------------
Character
ASCII# Combination Information displayed
------ ----------- ---------------------
65 ^KA Total system calls
66 ^KB Last caller (any line)
67 ^KC Number of active messages
68 ^KD System starting message number
69 ^KE System ending message number
70 ^KF Number of times user has paged sysop
71 ^KG Day of the week (full form)
72 ^KH Number of users in the user file
73 ^KI Time in 24 hour format
74 ^KJ Today's date
@ 75 ^KK Minutes connected this call
76 ^KL Seconds connected (always returns 0)
@ 77 ^KM Minutes used today
78 ^KN Seconds used today (always returns 0)
79 ^KO Minutes remaining today
80 ^KP Seconds remaining today (always 0)
81 ^KQ Daily time limit
82 ^KR Current baud rate
83 ^KS Day of the week (abbreviated form)
84 ^KT Daily download limit (in K)
85 ^KU Minutes until next system event
86 ^KV 24 hour format time of the next event
@ 87 ^KW Line number
@ 88 ^KX TERMINATES THE CALL
@ 89 ^KY Name of current template message area
@ 90 ^KZ Name of current template file area
@ 48 ^K0 Number of msgs in selected msg area
@ 49 ^K1 Number of current template message area
@ 50 ^K2 Number of current template file area
@ = not (yet) implemented
% = Executing a program in a dos shell: This gives you
the ability to run an external program in a Dos
shell whenever Quesdoor encounters a ^X embedded
in a text file. The ^X is followed by the command
line you want to execute, and terminated with the
pipe symbol (|). For example, to run an external
mail checking utility when a user enters quesdoor
you could embed the following in a file you display
with a displayfile command:
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 38
^XC:\ra\utils\mailchek.exe *B *F *L|
Quesdoor would then execute the following dos command:
c:\ra\utils\mailchek.exe 2400 Firstname Lastname
The ^X can only be invoked if you have set AllowFileShells
in Raconfig to yes, because it can be dangerous to use...
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 39
THE LET COMMAND
---------------
With the LET command you can change Quesdoor's internal behaviour.
There are many keywords you can use to change the internal messages,
to set dateformats etc. etc..
Here is a list of them:
keywords VMSG1 - VMSG5 control the votedoor internal messages
keywords TBMSG1 - TBMSG9 control the timebank internal messages
keyword DATEFORM sets the dateform as it is used in Askdate.
keyword ERRORON overrides the message error switch.
(more will be implemented in future versions and on request!)
Here is the syntax and the default internal messages and settings:
------------------------------------------------------------------
LET DATEFORM = <number>
Where number can 1 to 4:
1 sets the dateform as DD/MM/YY (the default)
2 sets the dateform as MM/DD/YY
3 sets the dateform as YY/MM/DD
4 sets the dateform as YY/DD/MM
LET ERRORON = ON (or 'OFF')
When you start Quesdoor, the default is on, but you can set
the error display off with the '/E' parameter. With this keyword
you can set the error display on or off in the questionnaire.
Useful when you want to debug just one part of the file.
LET VMSG1 = <"message">
Default "You already voted on this question!"
LET VMSG2 = <"message">
Default "Sorry, there are no questions yet!"
LET VMSG3 = <"message">
Default "You can add a question now. Enter a empty question to quit."
LET VMSG4 = <"message">
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 40
Default "Maximal 5 answers are possible."
LET VMSG5 = <"message">
Default "Give an empty answer when you want to use less then 5
Answers."
LET TBMSG1 = <"message">
Default "Searching for your record...."
LET TBMSG2 = <"message">
Default "Timebank account for #:"
(The # is translated into the users first and last name)
LET TBMSG3 = <"message">
Default "Total amount of time stored in all acounts: # minutes"
(The # is translated into the total amount of minutes)
LET TBMSG4 = <"message">
Default "How much do you want to deposit:"
LET TBMSG5 = <"message">
Default "Are you sure you want to rob the bank (y/N)"
LET TBMSG6 = <"message">
Default "You were able to rob the bank succesfully and get away."
LET TBMSG7 = <"message">
Default "You managed to rob # percent of all the acounts."
(The # is translated into the percentage you set with the ROBBANK
command.)
LET TBMSG8 = <"message">
Default "Your account has been updated with # minutes."
(The # is translated into the amount of minutes deposited"
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 41
LET TBMSG9 = <"message">
Default "It's time to pick a lucky winner..."
LET TBMSG10 = <"message">
Default "The lottery has # tickets sold, buy one!"
(The # is translated into the number of tickets sold)
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 42
INDEX
-----
----- A -----
aborting 57
according 22, 37-38
account 47, 49, 51, 53, 64
accountname 53
accounts 51
acounts 64
active 56, 59
actual 24
additional 5, 47
adds 28
addvar 2, 28
advanced 39
age 14
agreement 5, 7
allowfileshells 61
alt 8
angry 31
ansi 8, 16, 38, 44, 46,
56-57, 59
answer 18, 24, 42, 64
answernumber 44
answers 24, 39, 42, 44, 46, 64
anywhere 20
appendices 4
application 5
archive 5, 7, 42
area 26, 59
aritmethic 2
ascii 8, 57, 59
askcount 2, 14
askdate 2, 14, 62
askedit 2, 12
askforced 2, 12
asknumber 2, 14
askquestion 4, 42
attached 5
automaticly 24, 49
available 5, 7
----- B -----
background 16
backspace 12, 57
bank 4, 47, 51, 53, 64
banking 47
bar 18
base 5, 7, 37
basis 5, 7
batch 31
batchfile 8, 54, 56
baud 56, 59
baudrates 8
bbs 7-8, 10, 14, 25-26,
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 43
bbs (cont) 37-38, 51, 54,
56-57
bbsrules 18
beep 4, 14, 54, 57
beeps 8, 14
behaviour 2, 8, 62
besides 56
bit 8, 38
black 16
blackjack 10
board 1, 5, 14
borrow 47
borrowed 51
borrowtime 4, 47
box 1, 7
bringing 31
bulletin 5
business 57
buy 47, 49, 66
buyticket 4, 47, 49
----- C -----
call 14, 22, 56-57, 59
caller 54, 57, 59
calling 14, 56
calls 57, 59
carriage 18, 57
carrier 8, 56
case 5, 8, 56
changecolor 2, 16, 44, 46
chapters 10, 12
character 14, 16, 18, 57, 59
characters 12, 14, 16, 25-26,
31, 39, 57
charge 5
chars 12
chatmode 8
check 7, 37, 41
checkdata 4, 41
checking 37, 59
checkphone 4, 35, 37
choice 16
clear 57
clearing 18, 59
clearscreen 2, 18
code 27, 56-57
codes 4, 12, 20, 27, 54,
56-57, 59
colour 16, 44, 46
colours 16, 42, 47
column 8, 11
combination 57, 59
command 1-2, 8, 10-12, 14,
16, 18, 20, 22, 24-28,
30-31, 33, 35, 37-39,
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 44
command (cont) 41-42, 44,
46-47, 49, 51, 53-54,
56-57, 59, 61-62, 64
commands 2, 4, 8, 10-11, 31,
39, 42, 47
comments 11
commercial 7
compares 33, 35
compatible 8, 10, 56
complete 8, 10, 20, 27, 47
concept 4, 39, 42, 47
conditions 5
config 8, 20
conflicts 56
consequential 5
console 24, 54, 57
contact 7
contain 20, 26, 28, 30, 37
containing 42
contents 2, 12, 14, 18, 20,
22, 24-26, 28, 30, 33, 35,
37-39, 41, 44, 46
control 4, 12, 20, 27, 54,
56-57, 62
converted 26
copy 5, 7
copyright 1
correct 8, 12, 37
correctly 56
cost 49
counts 27
create 10, 31, 39
created 24-25, 42
credit 57
currency 7
current 24-26, 33, 38, 56-57,
59
cursor 57
----- D -----
dangerous 61
dark 16
data 5, 25-26, 39, 41-42, 47,
51, 53, 57
database 4, 37, 39, 41-42, 44
datafield 10
dataphone 25, 37
dataphonenumber 37
date 14, 24, 57, 59
dateform 14, 62
dateformats 62
day 51, 59
debug 62
declaration 28, 30-31
declare 31
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 45
default 10, 14, 62, 64, 66
defaults 16
delete 2, 12, 24, 42, 53
deleted 42
depending 10
depends 5
deposit 47, 49, 64
deposited 64
depostime 4, 49
dept 47
descriptor 22, 24
details 5
detect 8, 56
determine 5, 37-38
developed 5
difference 20
different 14, 16
dir 8, 20, 24-25, 42, 56
direct 5, 7
directly 8, 47
directory 7-8, 20, 39, 47, 53
disable 10, 57
disclaimer 2
disk 2, 20, 24, 56
display 2, 7, 12, 14, 16, 18,
20, 22, 31, 37, 44, 46, 59,
62
displayanyfile 2, 20
displayed 18, 20, 22, 24, 44,
59
displayfile 2, 18, 20, 57, 59
displays 18, 20, 22
distribute 5
distribution 5, 7
disturb 59
divides 30
divvar 2, 30
documentation 5
door 1-2, 4-5, 7-8, 10-12,
14, 16, 18, 20, 22, 24-28,
30-31, 33, 35, 37-39,
41-42, 44, 46-47, 49, 51,
53-54, 56-57, 59, 61-62,
64, 66
doors 8
dorinfo 10, 56
dos 10-11, 20, 39, 57, 59, 61
download 59
driver 8
due 5
dutch 7
----- E -----
easier 35, 39
easy 8, 10, 31
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 46
echo 22, 24
edit 12, 53
editor 8, 59
either 7, 27, 37
embed 59
embedded 59
empty 12, 39, 42, 62, 64
ems 56
enabled 8, 16, 18, 38
enables 10
encountered 31, 33, 35
encounters 8, 57, 59
endif 4, 33, 35, 37
ending 59
endlabel 31
endless 31
endnotif 4, 33, 35
enhanced 8, 10
enter 12, 14, 16, 37, 42, 44,
46, 62
entered 7, 14, 25
enters 51, 59
entitles 5
environment 8
equal 35
eques 33
error 8, 10, 24, 62
errorlevel 54
erroron 62
eurocheque 7
europe 1, 7
european 14
event 5, 39, 49, 56, 59
events 49
exact 8
exactly 14, 31, 57
example 12, 14, 16, 18, 20,
22, 24-28, 30-31, 33, 35,
37-39, 41-42, 44, 46-47,
49, 51, 53-54, 56, 59
exceed 5, 42
excludes 5
exec 4, 56
executable 5
execute 57, 59, 61
executed 12, 26-28, 31, 33,
35, 37-38
executing 26, 33, 35, 59
exist 10, 24
exit 56
exitinfo 10, 56
expected 14, 16
expects 20
express 5, 12
extension 8, 20, 24, 39
external 8, 56, 59
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 47
extra 8, 26, 42, 47, 56
----- F -----
fails 51
family 37
fee 5, 7
feel 42, 47
field 14, 25-26, 37
file 2, 5, 7-8, 18, 20, 24,
31, 42, 47, 53, 59, 62
filename 20, 22, 24, 54
files 8, 10, 20, 30-31, 57
fill 12, 25-26
find 8, 20, 24-25, 42, 44, 47
firstname 61
fitness 5
fixed 18, 22
flag 22, 25, 28, 37-38
flagset 22, 37
flexible 8, 31
followed 20, 24, 59
foreground 16
forever 8
form 5, 7, 14, 59
format 59
formatted 22
forms 14
forward 57
fossil 8, 56
found 8, 37, 42
free 10, 42, 47, 56
friend 53
frontdoor 25
full 8, 12, 27, 56-57, 59
function 8
further 12
future 5, 62
----- G -----
gamble 10
game 10, 25
games 10
generated 7
getchar 2, 16
getchoice 2, 16
gets 12, 42, 47, 51, 53
ghost 14
global 4
go 27, 42, 47
good 8, 11
gosublabel 4, 31, 33
gotolabel 4, 31, 37
graphics 16, 56
group 5
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 48
guess 25
----- H -----
halt 4, 54
hangup 8
hard 42
hardcoded 51
hello 22, 24, 27
help 53
hobbies 24
home 57
homephone 26, 37
hot 56, 59
hour 59
----- I -----
idea 10
ifnot 4, 33, 35
illegal 7
implemented 59, 62
implied 5
impossible 56
incidental 5
included 7, 10, 42
including 5, 10, 14, 42, 51
increasing 39
index 39
indexer 39
info 14
information 2, 5, 56-57, 59
input 2, 12, 14, 16
insert 57
install 7, 10, 42, 47
installing 2, 8, 10
instead 7, 12, 39
integers 14, 28, 35
internal 10, 62
interpreter 8, 12, 57
introduction 2
invalid 8, 14, 37, 49
invoke 8, 44, 46
involve 8
itself 8, 10, 42, 47
----- K -----
keyword 22, 56, 62
----- L -----
labelname 31, 33
labels 4, 31
last 56-57, 59, 64
learn 8
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 49
least 14, 31
leave 11, 56
legal 2, 5, 10, 12, 20
lend 47
length 12, 14, 18, 22, 31,
39, 57
less 8, 64
let 4, 10, 14, 33, 46, 53,
62, 64, 66
letter 7
level 20, 26-27, 37, 57
library 7
license 2, 5
likely 12
limit 56, 59
limitation 5
line 5, 8, 10-11, 18, 22, 26,
56, 59
lines 33, 35
list 20, 27, 62
listanswer 2, 20
listflags 2, 22
listsecurity 2, 20
listtimeleft 2, 20, 22
loaddata 4, 39
loan 47
local 8, 18, 24, 54, 56
location 57
lock 8
logfile 25
long 5, 8, 12, 14, 22
longer 25-26, 31, 39
looks 8, 12, 31
lost 51
lottery 49, 51, 66
lucky 47, 49, 66
----- M -----
match 33, 35
material 5
matters 2
max 12, 14, 25, 47, 49
maximum 14, 31, 39, 42, 47, 49
member 37
memory 10, 56
menu 10, 18
menutype 42, 47
message 7, 10, 24, 26, 42,
57, 59, 62, 64, 66
messagebase 39, 42, 47
messages 10, 57, 59, 62
min 12, 14
minimal 14
minimum 14, 42
minutes 22, 27, 47, 49, 53,
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 50
minutes (cont) 57, 59, 64
mode 7, 59
modify 5, 42, 47
multiline 8
mulvar 2, 28
----- N -----
name 5, 10, 12, 18, 20, 24,
27, 31, 39, 41-42, 44, 51,
56-57, 59, 64
nested 33, 35
new 7, 10, 24-26, 30, 33, 35,
37, 42
newuser 10, 24, 39
next 8, 10, 12, 18, 42, 44,
49, 53-54, 59
nightly 39
normally 31, 54, 56
note 26, 56
notification 51
notified 51, 53
num 12, 14, 16, 18, 20, 22,
24-27, 33, 35, 37-39,
41-42, 44
number 5, 7-8, 12, 14, 18,
22, 25-28, 30, 33, 35,
37-39, 42, 44, 46, 51, 57,
59, 62, 66
numbers 22, 28, 30, 35, 37, 39
----- O -----
off 10, 22, 25, 28, 37-38,
47, 56, 59, 62
offending 42
online 11, 31, 56
operate 8
opportunity 53
opposite 28, 35
option 51
optional 10, 16, 18, 27, 33,
42, 47, 49
order 5, 7, 11, 56
otherwise 5, 41
output 2, 22, 24
outputanswer 2, 24
outputlog 2, 25
overwrite 39
----- P -----
package 39, 42, 47
page 2, 4-5, 7-8, 10-12, 14,
16, 18, 20, 22, 24-28,
30-31, 33, 35, 37-39,
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 51
page (cont) 41-42, 44,
46-47, 49, 51, 53-54,
56-57, 59, 61-62, 64, 66
paged 59
parameter 26, 56-57, 59, 62
part 7, 62
passed 56
password 57
paste 30
path 8, 10, 20, 39, 54, 56
pause 4, 54, 57
payment 7
percentage 42, 44, 46, 49,
51, 64
performance 5, 8
phone 37, 57
phonenumber 25-26, 37
pipe 59
place 10
point 31
points 8, 11
possible 8, 12, 20, 35, 39,
56, 64
postal 7
posted 44, 57
postinfo 2, 24
powerful 22
preformat 22
press 8, 12, 14, 44
pressed 57
price 5, 47
print 7
printed 24
prints 25
prior 7
problem 8, 56
procedure 4-5
produce 57
program 5, 8, 10-11, 39, 42,
56-57, 59
programming 8, 31
programs 24, 56
prompt 44, 49, 57, 59
prompted 44, 47, 49, 53
provide 5
provided 5, 10, 18, 22, 24
purpose 5, 57
----- Q -----
qdb 39
quesbank 47, 53
quesdoor 1-2, 4-5, 7-8,
10-12, 14, 16, 18, 20, 22,
24-28, 30-31, 33, 35,
37-39, 41-42, 44, 46-47,
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 52
quesdoor (cont) 49, 51,
53-54, 56-57, 59, 61-62,
64, 66
questionairs 8, 31
questionnaire 1, 8, 10-12,
24, 26, 31, 33, 39, 42, 44,
47, 54, 56, 62
questions 18, 39, 42, 44, 62
quicked 56
quiet 59
quit 4, 54, 62
quotes 18
----- R -----
ra 1, 8, 10, 18, 20, 25-26,
42, 47, 56, 61
raccess 10
raconfig 8, 20, 61
random 2, 25
rate 56, 59
reacts 12
read 35, 57
readansi 4, 38
readflag 4, 37
readsecurity 4, 37
ready 42, 47
reason 5
record 8, 64
redrawtime 4, 49
refuse 14, 49
refuses 14
register 5
registering 2, 5, 7
registration 5, 7, 12
release 42
reload 39
remain 26
remoteaccess 1, 7, 10, 57
rename 7
replaced 26, 56
replaces 26
report 51
require 56
required 8, 42, 56
reserved 1
resist 7
resists 53
response 12, 16
restart 39
result 28, 30-31, 35, 37
return 14, 18, 37, 57
returns 54, 59
reverse 5
right 22
risk 5
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 53
rob 64
robbank 4, 49, 64
robbery 51
robbing 51
routines 8, 12
run 4-5, 8, 10, 39, 54, 56, 59
running 56
----- S -----
save 47
screen 2, 18, 20, 22, 24, 57,
59
second 12, 44, 56-57
section 5, 12
security 20, 26-27, 37, 57
sensitive 8, 31
serial 7
session 7, 49
set 5, 8, 10, 14, 22, 25,
27-28, 37, 44, 46, 61-62, 64
setdataphone 2, 25
setflag 2, 25, 28
sethomephone 2, 26
setlevel 2, 26
setparam 2, 26
sets 26, 62
setsecurity 2, 27
settime 2, 27
setting 2, 22, 28, 57, 59
settings 62
setvar 2, 12, 27, 44
share 5, 8
shell 56-57, 59
show 7, 42
showaccount 4, 51, 53
showanswer 4, 42, 44
showclients 4, 51
showing 7
shown 12, 18, 44, 46, 51
showquestion 4, 44
side 18
signifies 33
simultaneously 5
single 47
site 5, 7-8, 16
skipped 33, 35
slower 39
small 7, 25, 53
smaller 35
smart 8
sorry 62
sort 20
space 22
special 5, 10, 39, 57
specified 16, 18, 20, 25, 27,
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 54
specified (cont) 31, 33, 35,
47, 49, 56
speed 39
start 4, 8, 10-12, 22, 24,
26, 31, 33, 53, 56, 62
starting 11, 24, 59
starts 10, 14, 18, 33
statement 33, 35
status 8
store 27, 39, 53
stored 14, 16, 27-28, 30, 39,
42, 49, 51, 64
string 12, 14, 25, 27, 33,
35, 54
style 25
subject 5
subtracted 49
subtracts 28
subvar 2, 28
supplied 7, 20, 27, 37
supply 14, 26-28, 30, 33, 37
support 1, 5
swap 56
switches 7
syntax 12, 14, 16, 18, 20,
22, 24-28, 30-31, 33, 35,
37-39, 41-42, 44, 47, 49,
51, 54, 62
sys 8
sysop 8, 42, 59
system 7, 47, 49, 57, 59
systems 5, 8
----- T -----
tab 57
telephone 14
template 26, 59
temporary 10
terminate 33
terminated 59
terminates 54, 59
terms 2, 5
text 16, 18, 20, 22, 59
textfile 20
ticket 47, 49
tickets 47, 49, 51, 66
till 14
time 8, 10, 12, 22, 24, 27,
47, 49, 51, 53, 56-57, 59,
64, 66
timebank 4, 10, 47, 51, 53,
62, 64
timer 8
times 11, 59
tips 2, 10
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 55
tm 1
today 57, 59
together 30-31
toggle 28
toggled 28
toggleflag 2, 28
toggles 28
top 30-31
total 47, 51, 57, 59, 64
translated 18, 44, 46, 64, 66
transtime 4, 51, 53
trial 5
tries 42
truncated 25-26, 39
type 10, 18, 26
----- U -----
understand 8
unique 7
uniquely 7
uploads 57
used 5, 7, 12, 20, 22, 27,
35, 37-38, 42, 44, 47, 49,
51, 56-57, 59, 62
useful 10, 24, 53, 62
user 8, 12, 14, 16, 18,
24-28, 37-39, 41-42, 44,
46-47, 49, 51, 53, 56-57, 59
users 7, 12, 18, 20, 22,
25-28, 31, 37-39, 44, 46,
49, 51, 53, 57, 59, 64
usually 8
util 53
utility 53, 59
utils 42, 47, 56, 61
----- V -----
valid 7-8, 11-12, 16, 28, 30,
39
validate 57
value 14, 25, 28, 35, 37, 56
values 12
variabelen 35
variable 8, 12, 14, 16, 18,
20, 22, 24-28, 30, 33, 35,
37, 39, 44, 46
varnum 30
version 5, 10
vertical 18
voice 57
vot 42
vote 42, 44, 46
votedoor 4, 42, 44, 46, 62
voting 4, 10, 42, 44, 46
InterSoft - QUESDOOR - The Extended Questionaire Language Door - Page 56
----- W -----
wait 57
waits 12, 14, 16
watchdog 8
week 59
winner 47, 49, 66
wish 5, 11
word 26, 35
words 33, 35
works 35, 53
write 8, 22, 39
writedata 4, 39
writes 39
written 7
----- Y -----
year 11, 14
----- Z -----
zip 39, 42, 47